#include <iostream>

using namespace std;

class Base
{
public:
    Base();
    virtual void mf1() = 0;
    virtual void mf1(int);
    virtual void mf2();
    void mf3();
    void mf3(double);
private:
    int x;
};

/**
 *class Derived : public Base
 *{
 *public:
 *    virtual void mf1();
 *    void mf3();
 *    void mf4();
 *};
 */

class Derived : public Base
{
public:
    using Base::mf1;
    using Base::mf3;
    virtual void mf1();
    void mf3();
    void mf4();
};

void test1()
{
    int x = 0;
    Derived d;
    d.mf1();
    d.mf1(x);
    d.mf3();
    d.mf3(x);
}

int main(int argc, char *argv[])
{
    return 0;
}
